package com.sky.test;

import org.apache.poi.xssf.usermodel.*;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelDemo {
    public static void main(String[] args) throws Exception {
        writExcel();//写入Excel文件
    }

    /**
     * poi 写入Excel文件
     */
    public static void writExcel() throws IOException {
        //在内存中创建excel文件对象
        XSSFWorkbook excel = new XSSFWorkbook();
        //创建sheet页
        XSSFSheet sheet = excel.createSheet("花名册");
        //在sheet页中创建行，0表示第一行，依次类推
        XSSFRow row = sheet.createRow(0);
        //创建单元格并在单元格中设置值，也就是列值
        row.createCell(0).setCellValue("序号");
        row.createCell(1).setCellValue("姓名");
        row.createCell(2).setCellValue("城市");

        XSSFRow row1 = sheet.createRow(1);
        row1.createCell(0).setCellValue("1");
        row1.createCell(1).setCellValue("韩立");
        row1.createCell(2).setCellValue("黄枫谷");

        XSSFRow row2 = sheet.createRow(2);
        row2.createCell(0).setCellValue("2");
        row2.createCell(1).setCellValue("东方不败");
        row2.createCell(2).setCellValue("黑木崖");
        //创建需要写入数据的excel表格文件名
        FileOutputStream fileout = new FileOutputStream("D:\\poi_excel.xlsx");
        //通过输出流将内存中的excel文件写入到磁盘上
        excel.write(fileout);
        //更新关闭资源
        fileout.flush();
        fileout.close();
        excel.close();
    }

    public static void readExcel() throws Exception {
        //通过输入流加载文件
        FileInputStream fileinput = new FileInputStream("D:\\poi_excel.xlsx");
        //使用XSSFWorkbook将流变成对象
        XSSFWorkbook excel = new XSSFWorkbook(fileinput);
        //使用对象获取第一个sheet（页）
        XSSFSheet sheet = excel.getSheetAt(0);
        //通过页获取最后一行的行号
        int lastRowNum = sheet.getLastRowNum();
        //遍历0-行号
        for (int i = 0; i < lastRowNum; i++) {
            //通过行号获取行对象
            XSSFRow row = sheet.getRow(i);
            //通过行对象获取第2个单元格对象，进而获得单元格的数据
            XSSFCell cell = row.getCell(1);
            String CellValue = cell.getStringCellValue();
            //获取第3个单元格,以及内容
            XSSFCell cell1 = row.getCell(2);
            String CellValue1 = cell1.getStringCellValue();
            //拼接数据，输出
            System.out.println(CellValue+""+CellValue1);

        }
        //关闭资源
        fileinput.close();
        excel.close();


    }

}
